Method for updating a factor graph of an a posteriori probability estimator

ABSTRACT

A method for updating a factor graph ( 10;10′;10″ ) of an a posteriori probability estimator, the factor graph including at least one repetition node ( 13;13′;13″ ) and at least one sum node ( 11;11′;11″ ), wherein at least two connections are associated with each node, and wherein each connection is associated with an incoming message at the node and with an outgoing message from the node, wherein the method includes the steps of: storing the nodes&#39; incoming and outgoing messages into memory ( 12;12′;12″ ) of the estimator as messages belonging to one same class of wrapped and/or sampled Gaussian messages; updating the node of the factor graph ( 10;10′;10″ ) by using a resulting message belonging to the class of incoming messages, the resulting message being obtained by processing the incoming wrapped and/or sampled Gaussian messages.

The present invention relates to a method for updating a factor graph of an a posteriori probability estimator.

More in particular, the present invention relates to a method for updating a factor graph of an a posteriori probability estimator, wherein the repetition nodes, also called variable nodes or equality nodes, and the sum nodes, or parity check nodes, of the factor graph are updated with a message propagation algorithm.

The present invention further relates to an estimator, a decoder and a receiver implementing the method for updating a factor graph according to the invention. Algorithms of the “Belief Propagation” type (“BP algorithms”), or message propagation algorithms, are known in the art.

In its most general form, the BP algorithm allows reconstructing the marginal probabilities for a set of random variables which describe a system and which are connected by local constraints, expressed as joint probability distributions P, by starting from a set of observations, in the form of messages or verisimilitudes L, on a subset thereof.

FIG. 1 illustrates a node of a factor graph 1 that represents a probability model, wherein the nodes 5 describe the local constraints, and the connections 3 between each node 5 describe the corresponding variables.

In the BP algorithm, each connection 3 to a node 5 is associated with an incoming message 7 L(;I) and an outgoing message 9 L(;O), and each node 5 of the factor graph 1 is replaced with a corresponding message update node.

The update rule for the node 5 is obtained by assuming statistic independence of the incoming messages 7, through a marginalization carried out in accordance with the formula (1.1):

$\begin{matrix} {{L\left( {x_{j};O} \right)} \propto {\sum\limits_{\forall x_{\sim j}}^{\;}\; {{P(x)}{\sum\limits_{i \neq j}^{n}\; {{L\left( {x_{i};I} \right)}{\forall j}}}}}} & (1.1) \end{matrix}$

where x=(x₁, . . . , x_(n)) denotes a set of incoming variables at a node 5 and the symbol x_(˜j) denotes a subset of x obtained by excluding the variable x_(j) from x.

The BP algorithm provides the exact a posteriori probabilities for all system variables in a finite number of steps when the graph is a tree (i.e. it contains no cycles), otherwise it gives a good approximation thereof.

As can be observed in the formula (1.1), the general complexity of the node update is proportional to the product of the cardinalities of the alphabets of the incoming symbols at the node 5.

Furthermore, the messages 7,9 are represented by a function of the incoming symbols, and therefore they require, in order to be stored, a memory which is proportional to the cardinality of the symbol alphabets.

A particularly important example of application of the BP algorithm is obtained when the underlying model is a linear system.

In a linear system, the random variables are obtained as a linear combination of other random variables.

For linear systems, the factor graph 1 is made up of three types of nodes 5:

-   -   sum nodes: the sum of the incoming variables at a node 5 is         equal to zero;     -   repetition nodes (also called variable nodes or equality nodes):         two or more variables are equal;     -   scaling: the output is a scaled version of the input.

In this case, the rules for updating the messages at the nodes correspond, respectively, to convolution, multiplication and scaling of the axes of the messages 7,9. In order to emphasize the properties of these update rules, the following notations will be adopted below for the operations between messages 7,9:

L₁+L₂

L₁(x)*L₂(x)

αL

L₁(αx)

L₁·L₂

L₁(x)·L₂(x)

where L₁ and L₂ are a first and a second messages relating to two input variables at a node 5, the symbol “*” indicates the convolution operator, and the symbol “

” indicates a definition.

Since convolution and product operations are associative, the update operation for a node 5 that involves more than three variables can be carried out by repeatedly applying the corresponding operations in the formula (1.2):

${{sum}\mspace{14mu} {node}\text{:}\mspace{14mu} {L\left( {x_{j};O} \right)}} = {- {\sum\limits_{i \neq j}^{n}\; {L\left( {x_{i};I} \right)}}}$ ${{repetition}\mspace{14mu} {node}\text{:}\mspace{14mu} {L\left( {x_{j};O} \right)}} = {\prod\limits_{i \neq j}^{n}\; {L\left( {x_{i};I} \right)}}$

It can be observed that the sign inversion simply corresponds to the overturning of the axis of the messages: −L₁(x)

L₁(−x).

The complexity of the BP algorithm in this case increases linearly with the number of variables involved in the node 5. In general, it can be shown that, in order to update all the messages for a sum node or repetition node involving n variables, it is sufficient to carry out 3·(n-2) corresponding binary update operations (convolution or multiplication among messages).

The incoming and outgoing messages in the BP algorithm are normally vectors whose size is equal to the cardinality of the alphabet of the respective variable.

In the following, the term message class will refer to a subset of messages which can be parameterized with a number of parameters smaller than the dimensionality of the cardinality of the associated variable. In a BP algorithm operating on linear systems and continuous variables, it is not guaranteed that the output messages belong to the same class as that of the input messages, with the important exception of the Gaussian message class.

The class of Gaussian (also referred to as Normal) messages, or G-messages, is defined as follows:

$\begin{matrix} {\left\{ {{{G\left( {\mu,K} \right)} \propto ^{{- \frac{K}{2}}{{x - \mu}}^{2}}},{K \in {\mathbb{R}}^{+}},{\mu \in {\mathbb{R}}}} \right\}} & (1.3) \end{matrix}$

where the two parameters K (called “concentration”, equal to the inverse of variance) and μ (mean) univocally define a member of the Gaussian message class.

G-messages form a closed set with respect to the convolution, product and scaling of the axes. In addition, the message update rules (convolution and product) translate into rules for updating the parameters of the class of G-messages as follows and as shown in FIG. 2:

$\begin{matrix} {{G_{1} + G_{2}} = {G_{3} = {G\; \left( {{\mu_{1} + \mu_{2}},\left( {K_{1}^{- 1} + K_{2}^{- 1}} \right)^{- 1}} \right)}}} & (1.4) \\ {{G_{1} \cdot G_{2}} = {G_{3} = {G\left( {\frac{{\mu_{1}K_{1}} + {\mu_{2}K_{2}}}{K_{1} + K_{2}},{K_{1} + K_{2}}} \right)}}} & (1.5) \\ {{\alpha \; G} = {{G\left( {{\alpha \; \mu},\frac{K}{\alpha^{2}}} \right)}.}} & (1.6) \end{matrix}$

The simplification found in the formulas (1.4), (1.5) and (1.6) allows the BP algorithm to be executed on factor graphs 1 with finite complexity because:

-   -   the messages 7,9 are only stored through the two parameters         (concentration and mean) that identify the member of the         Gaussian message class according to the formula (1.3):         otherwise, the message 7,9 would be a function of the continuous         variable x, and therefore would require infinite memory in order         to be stored;     -   the update operations are only executed on the parameters of the         Gaussian message class by using the formulas (1.4), (1.5) or         (1.6): in this case as well, the complexity of the convolution         and multiplication operations would be infinite for generic         messages 7,9.

For further details about the derivation of update rules for linear factor graphs with Gaussian messages, see for example the article by Loeliger H.-A., Dauwels J., Junli Hu, Korl S., Li Ping, Kschischang F. R.: “The Factor Graph Approach to Model-Based Signal Processing”, Proceedings of the IEEE, vol. 95, no. 6, pp. 1295-1322, June 2007, while European patent application no. EP 2144413 illustrates an application of the algorithm described in the cited article for carrying out channel estimate in numerical receivers.

On the other hand, when the system variables are discrete and/or limited, i.e. when discrete alphabets are used, the complexity and memory requirement for message representation of the existing algorithms grow at least linearly with the cardinality of the message alphabets.

The BP algorithm thus becomes inefficient for high-cardinality finite alphabets.

A technical field where BP algorithms are used is channel coding with the introduction of iterative algorithms for decoding very large random codes.

Very large random codes with binary alphabets allow reaching performance levels close to the theoretical limit, but the complexity of their optimal decoding grows exponentially with the code size.

Instead, the complexity of the BP algorithm grows only linearly with the number of variables involved, and therefore ensures very good performance with reasonable complexity.

The use of discrete but not binary variables (cardinality M) at the encoder is desirable for several reasons.

Encoders with high spectral efficiency, which map sets of m=log₂ M bits coded on high-cardinality constellations of the QAM or PAM type are often used in telecommunication standards.

For this type of applications, non-binary encoders are the natural choice, and provide better performance than binary codes. However, non-binary encoders are not often employed in practice, mainly because the BP algorithm has a complexity which is at least linear with M and therefore exponential with m.

For this reason, considerable efforts have been made in the telecommunications industry to reduce the complexity of the BP algorithm for non-binary codes, but the best algorithm known (based on FFT) has a complexity of the order of O(M log M) and a memory requirement proportional to M.

For example, the article by Voicila A., Declercq D., Verdier F., Fossorier M., Urard P., entitled “Low-complexity decoding for non-binary LDPC codes in high order fields”, IEEE Transactions on Communications, vol. 58, no. 5, pp. 1365-1375, May 2010, describes an algorithm, called EMS (Extended Min Sum), which further reduces this complexity, at the price however of a degradation in the performance of the decoder, while European patent application no. EP2198523 represents an application of the method proposed in said article wherein, in order to execute the BP algorithm, messages in the form of vectors are used and the update rules are obtained by simplifying the convolution operations.

It is one object of the present invention to provide a method for updating a factor graph of an a posteriori probability estimator which requires a certain quantity of memory for message representation which is independent of the size of the alphabets in use.

It is another object of the present invention to provide a method for updating a factor graph of an a posteriori probability estimator which allows acting upon messages relating to limited and/or discrete variables.

It is a further object of the present invention to provide a method for updating a factor graph of an a posteriori probability estimator which is applicable for iterative decoding of a non-binary code with high or very high cardinality.

These and other objects of the invention are achieved through a method for updating a factor graph of an a posteriori probability estimator as claimed in the appended claims, which are an integral part of the present description.

The invention also relates to an estimator, a decoder and a receiver implementing the method of the present invention.

In short, the subject of the present invention is a method for updating a factor graph of an a posteriori probability estimator, wherein Gaussian like messages are used at the sum and repetition nodes, and wherein discrete and/or limited variables are employed.

The messages are parameterized with their mean and concentration, and the graph update operations have a complexity which does not depend on the cardinality of the alphabets of the variables involved at the nodes.

Therefore, the messages are not represented as vectors whose length is equal to the cardinality of the associated variable, but through a few parameters which identify them within the predefined class. This approach makes both the computational complexity and the memory requirements of the algorithm independent of the cardinality of the variables associated with the graph.

Furthermore, the method according to the present invention allows to provide iterative decoders for non-binary linear channel encoders over rings, with a computational complexity and a memory requirement independent of the dimension of the alphabets in use, thereby allowing for the creation of decoders offering performance levels close to the theoretical limit even for very high spectral efficiencies (tens or hundreds of bits per transmitted symbol), which cannot be obtained with any other prior art algorithm.

In one embodiment of the invention, the class of D-messages is introduced, i.e. messages wherein the message variables are discrete and limited. Said D-messages have low processing complexity and require a small quantity of memory for storage, because the parameterization thereof is independent of alphabet cardinality. D-messages thus open the way to intensive application of non-binary codes with high or even very high cardinality in the telecommunications field.

Further features of the invention are set out in the appended claims, which are intended to be an integral part of the present description.

The above objects will become more apparent from the following detailed description of a method for updating a factor graph of an a posteriori probability estimator, with particular reference to the annexed drawings, wherein:

FIG. 1 shows a node of a prior art factor graph representing a probabilistic model;

FIG. 2 shows a factor graph wherein Gaussian messages are exchanged in accordance with the prior art;

FIG. 3 shows a factor graph wherein wrapped messages are exchanged in accordance with a first embodiment of the method of the present invention;

FIG. 4 shows a factor graph wherein sampled messages are exchanged in accordance with a second embodiment of the method of the present invention;

FIGS. 5 and 6 show respective block diagrams illustrating the blocks and operations required for updating the messages at the sum nodes in accordance with a first and a second variants of said second embodiment;

FIG. 7 shows a factor graph wherein sampled and wrapped messages are exchanged in accordance with a third embodiment of the method of the present invention;

FIG. 8 shows a relation between Gaussian messages, wrapped messages, sampled messages, and sampled and wrapped messages;

FIG. 9 shows a table that summarizes the formulas that can be used in accordance with the method of the present invention for wrapped messages, sampled messages, and sampled and wrapped messages;

FIG. 10 shows a digital transmission and reception system that implements the method of the present invention.

With reference to FIG. 3, there is shown a factor graph 10 of an estimator that comprises memory means 12 adapted to store incoming and outgoing messages at sum nodes 11 and repetition nodes 13 of the factor graph 10.

In a first embodiment of the method according to the invention, the operation “modulo M”, where M ∈

, is carried out on the variables a at the output of the sum nodes 11 of the factor graph 10, i.e. new variables a_(w)=a mod M are taken into account.

The module operation carried out on the output variables induces a wrapping of the corresponding messages L_(a).

The messages L_(a) _(w) (x) of the variables a_(w) are obtained from those relating to the variables a as follows:

$\begin{matrix} {{{L_{a_{w}}(x)} = {{\sum\limits_{i}^{\;}\; {L_{a}\left( {x - {iM}} \right)}} = {{s_{M}(x)}*{L_{a}(x)}{W\left\lbrack {L_{a}(x)} \right\rbrack}}}},} & (1.7) \end{matrix}$

where the pulse train

${s_{M}(x)}{\sum\limits_{i = {- \infty}}^{\infty}\; {\delta \left( {x - {iM}} \right)}}$

and a wrapping operator W[.] are introduced.

The wrapping of the messages is transparent with respect to the sum operation, because the operator W switches with the convolution product:

W[L ₁ ]+W[L ₂ ]=W[L ₁ +L ₂]

In particular, this introduces the class of wrapped Gaussian messages (WG-messages), also referred to as wrapped normal messages, which is defined by applying the wrapping operator W to the G-messages of the formula (1.3):

87 =W[

]={W[G(μ, K, x)], K ∈

⁺, μ ∈ [0, M]}

This class is still parameterized with the concentration and mean (module M) of the corresponding G-messages.

The class

of WG-messages is closed with respect to the sum operation:

W[G ₁ ]+W[G ₂ ]=W[G ₁ +G ₂ ]=W[G ₃] ∈

.   (1.8)

On the other hand, the wrapping has a non-transparent effect at the repetition nodes, since in general it does not switch with multiplication:

W[L₁]·W[L₂]≠W[L₁·L₂]  (1.9)

This effect is due to the fact that, when the original messages do not have support strictly limited in [0,M], the replicas, or copies, induced by the wrapping of the message are superimposed (aliasing effect):

$\begin{matrix} {{\sum\limits_{j}^{\;}\; {{L_{1}\left( {x - {jM}} \right)}{\sum\limits_{i}^{\;}\; {L_{2}\left( {x - {iM}} \right)}}}} = {{\sum\limits_{j}^{\;}\; {{L_{1}\left( {x - {jM}} \right)}{L_{2}\left( {x - {jM}} \right)}}} + \underset{\underset{aliasing}{}}{\sum\limits_{i \neq j}^{\;}\; {{L_{1}\left( {x - {jM}} \right)}{L_{2}\left( {x - {iM}} \right)}}}}} & (1.10) \end{matrix}$

In particular, the class of WG-messages is no longer closed for this operation, because G-messages do not have limited support in the interval [0,M]:

W[G₁]·W[G₂]∉

  (1.11)

In order to execute a BP algorithm to update the parameters of the class of WG-messages, it is therefore appropriate to find an approximation of the product of (1.11) in the class

of WG-messages.

To this end, the class of Von Mises messages (V-messages) is taken into account:

{V(μ, K_(v))∝e^(K) ^(v) ^(cos(A(x−μ))), K_(v) ∈

⁺[0, M]}  (1.12)

where K_(v) is the concentration and μ is the mean of the V-message, and where the quantity

$A\frac{2\; \pi}{M}$

is defined.

The class of V-messages is closed with respect to the product

∀V ₁ , V ₂ ∈

, V ₁ ·V ₂ =V ₃ ∈

  (1.13)

The parameters of the output V-message V₃ can be obtained as follows:

$\begin{matrix} {{\mu_{3} = {\frac{1}{A}{\arctan \left( \frac{{K_{v,1}{\sin \left( {A\; \mu_{1}} \right)}} + {K_{v,2}{\sin \left( {A\; \mu_{2}} \right)}}}{{K_{v,1}{\cos \left( {A\; \mu_{1}} \right)}} + {K_{v,2}{\cos \left( {A\; \mu_{2}} \right)}}} \right)}}}{K_{v,3} = {\sqrt{K_{v,1}^{2} + K_{v,2}^{2} + {2\; K_{v,1}K_{v,2}{\cos \left( {A\left( {\mu_{1} - \mu_{2}} \right)} \right)}}}.}}} & (1.14) \end{matrix}$

It is also possible to approximate a member of the class of WG-messages with mean μ with a member of the class of V-messages with the same mean by applying the following transformations between the respective concentrations, as known, for example, from the book written by Evans M, Hastings N. and Peacock B.: “Von Mises Distribution”, chapter 41, Statistical Distributions, third edition, New York, Wiley, 2000:

$\begin{matrix} {{{W\;\left\lbrack {G\left( {\mu,K_{w}} \right)} \right\rbrack} \approx {V\; \left( {\mu,K_{v}} \right)}}{K_{w} = {{A^{2}\left( {2\; {\log \left( \frac{I_{0}\left( K_{v} \right)}{I_{1}\left( K_{v} \right)} \right)}} \right)}^{- 1}A^{2}{f\left( K_{v} \right)}}}} & (1.15) \\ {{{V\; \left( {\mu,K_{v}} \right)} \approx {W\;\left\lbrack {H\left( {\mu,K_{w}} \right)} \right\rbrack}}{K_{v} = {f^{- 1}\left( \frac{K_{w}}{A^{2}} \right)}}} & (1.16) \end{matrix}$

where the function ƒ(•) has been defined in order to make the formula simpler, and where K_(v) and K_(w) are, respectively, the concentrations of a V-message and of a WG-message approximating it.

In the formula (1.15), moreover, I_(i)(x) indicates the modified Bessel functions of order i.

In order to find a member of the class

of WG-messages which approximates the formula (1.11), it is therefore necessary to:

-   -   approximate the two WG-messages of the formula (1.11) with two         V-messages by using the formula (1.16);     -   calculate the product between the two V-messages with the         formula (1.14) and approximate again the resulting V-message         with a WG-message by using the formula (1.15).

In brief

$\begin{matrix} {{{{W\;\left\lbrack G_{1} \right\rbrack}{W\;\left\lbrack G_{2} \right\rbrack}} \approx {W\;\left\lbrack G_{3} \right\rbrack}}{where}{K_{v,i}{f^{- 1}\left( {K_{w,i}/A^{2}} \right)}}\; {{i = 1},2}} & (1.17) \\ {{\mu_{3} = {\frac{1}{A}{\arctan \left( \frac{{K_{v,1}{\sin \left( {A\; \mu_{1}} \right)}} + {K_{v,2}{\sin \left( {A\; \mu_{2}} \right)}}}{{K_{v,1}{\cos \left( {A\; \mu_{1}} \right)}} + {K_{v,2}{\cos \left( {A\; \mu_{2}} \right)}}} \right)}}}{K_{v,3} = {A^{2}{{f\left( \sqrt{K_{v,1}^{2} + K_{v,2}^{2} + {2\; K_{v,1}K_{v,2}{\cos \left( {A\left( {\mu_{1} - \mu_{2}} \right)} \right)}}} \right)}.}}}} & (1.18) \end{matrix}$

The approximation of the formula (1.18) is preferably made when the aliasing effect induced by the wrapping of the formula (1.10) is not negligible, i.e. when the concentration of either message is not sufficiently small, i.e. it is above a threshold that needs to be optimized depending on the specific application. Otherwise, one may directly use the repetition node update formula (1.5) for non-wrapped variables:

$\begin{matrix} {{{W\;\left\lbrack G_{1} \right\rbrack} \cdot {W\;\left\lbrack G_{2} \right\rbrack}} \approx {W\left\lbrack {G\left( {{\frac{{{\overset{\_}{\mu}}_{1}K_{1}} + {{\overset{\_}{\mu}}_{2}K_{2}}}{K_{1} + K_{2}}\mspace{14mu} {{mod}\mspace{14mu} M}},K_{1},K_{2}} \right)} \right\rbrack}} & (1.19) \end{matrix}$

where the two means μ ₁, μ ₂ in the formula (1.19) must be chosen, in this case, among all the replicas (or copies) introduced by the wrapping, so that the distance is minimal. In other terms, μ ₁=μ₁+k₁M and μ ₁=μ₂+k₂M and the integers k₁, k₂ are such that | μ ₁− μ ₂| is minimum.

The following will describe a second embodiment of the method according to the invention, wherein the system variables are assumed to be discrete, i.e. x ∈

⊂

.

With reference to FIG. 4, there is shown a factor graph 10′ of an estimator that comprises memory means 12′ adapted to store incoming and outgoing messages at sum nodes 11′ and repetition nodes 13′ of the factor graph 10′.

This a priori knowledge can be imposed in the BP algorithm by sampling the corresponding messages, which operation corresponds to multiplying an incoming message at a node 11′,13′ by a pulse train s₁(x):

S[L(x)]

s₁(x)·L(x)   (1.20)

where the sampling operator S[•] has been introduced.

The behaviour of the sampling operator S[•] with respect to the operations at the nodes 11′,13′ of the graph 10′ of a linear system is complementary to that of the wrapping operator W[•] of the first embodiment of the method according to the present invention.

The sampling of the messages is, in fact, transparent to the update of the repetition nodes 13′, but it is not with respect to the sum nodes 11′:

S[L ₁ ]·S[L ₂ ]=S[L ₁ ·L ₂]

S[L₁]+S[L₂]≠S[L₁+L₂]  (1.21)

The class of sampled Gaussian messages (SG-messages) is thus introduced, which is obtained by applying the sampling operator S[•] to G-messages.

The class

S[g] of sampled Gaussian messages is closed with respect to the product, but it is not with respect to the convolution:

S[G ₁ ]·S[G ₂ ]=S[G ₁ ·G ₂ ]=S[G ₃]  (1.22)

S[G _(1]+) S[G _(2]≠) S[G ₃]

In this case, in order to be able to proceed in the BP algorithm by only using the parameters of the SG-messages, it is necessary to find an approximation of the formula (1.23) in the class of SG-messages.

In order to proceed, one must take into consideration that:

-   -   the convolution product of SG-messages corresponds to the         product of their characteristic functions;

{S[G ₁ ]+S[G ₂ ]}=

{S[G ₁ ]]}·

{S[G ₂]]}  (1.24)

-   -   the characteristic functions of SG-messages are WG-messages with         a purely imaginary mean value and a unitary period multiplied by         a complex exponential;

${\mathcal{F}\left\{ {S\left\lbrack {G\left( {\mu,K,x} \right)} \right\rbrack} \right\}} \propto {\sum\limits_{n = {- \infty}}^{\infty}\; ^{{{- \frac{2\; \pi^{2}}{K}}{({p - n})}^{2}} - {j\; 2\; {\pi {({l + \alpha})}}{({p - n})}}}} \propto {^{{- j}\; 2\; \pi \; {lp}}{W\left\lbrack {G\left( {{{- j}\frac{K\; \alpha}{2\; \pi}},\frac{4\; \pi^{2}}{K},p} \right)} \right\rbrack}}$

where the following has been defined:

l

[μ] ∈

integer closest to μ

α

μ−l ∈ [−0.5, 0.5]

-   -   the approximations of the formulas (1.15) and (1.16) between         members of the class of V-messages and those of the class of         WG-messages are also valid when the WG-messages have an         imaginary mean value;

${W\left\lbrack {G\left( {p,{{- j}\frac{K_{w,i}\alpha_{i}}{2\; \pi}},\frac{4\; \pi^{2}}{K_{w,i}}} \right)} \right\rbrack} \approx {{V\left( {p,{{- j}\frac{K_{w,i}\alpha_{i}}{2\; \pi}},{f^{- 1}\left( \frac{1}{K_{w,i}} \right)}} \right)}.}$

-   -   the product of V-messages with imaginary mean value is still         closed, and the transformations that must be carried out in         order to obtain the parameters of the output V-message are         obtained from the formula (1.14) by transforming the         trigonometric functions with purely imaginary argument into         suitable hyperbolic functions,

$\begin{matrix} {{{V\; \left( {x,{{- j}\frac{\mu_{1}}{2\; \pi}},K_{v,1}} \right)V\; \left( {x,{{- j}\frac{\mu_{2}}{2\; \pi}},K_{v,2}} \right)} = {V\; \left( {x,{{- j}\frac{\mu_{3}}{2\; \pi}},K_{v,3}} \right)}}{\mu_{3} = {{\frac{1}{2}\log \; \frac{{K_{v,1}^{\mu_{1}}} + {K_{v,2}^{\mu_{2}}}}{{K_{v,1}^{- \mu_{1}}} + {K_{v,2}^{- \mu_{2}}}}K_{v,3}} = \sqrt{K_{v,1}^{2} + K_{v,1}^{2} + {2\; K_{v,2}K_{v,2}\cosh \; \left( {\mu_{1} - \mu_{2}} \right)}}}}} & (1.25) \end{matrix}$

where the formula (1.25) has been obtained by using the identity

${{arc}\; {\tanh (x)}} = {\frac{1}{2}{\log \left( \frac{1 + x}{1 - x} \right)}}$

On these grounds, the approximation of the formula (1.23) can be done through the following steps:

-   -   approximating the characteristic functions of the two         SG-messages (WG-messages with imaginary mean value and         concentrations proportional to the inverse of the original         concentrations) with V-messages;     -   calculating the product between said V-messages with imaginary         mean value by using the formula (1.25);     -   approximating the result with a WG-message that represents the         characteristic function of the SG-message which approximates the         formula (1.23).

In brief

$\begin{matrix} {{{{S\left\lbrack G_{1} \right\rbrack} + {S\left\lbrack G_{2} \right\rbrack}} \approx {S\left\lbrack G_{3} \right\rbrack}}{where}{K_{v,i} = {f^{- 1}\left( {1/K_{w,i}} \right)}}{\mu_{i} = \left( {l_{i} + \alpha_{i}} \right)}{\gamma_{i} = {\alpha_{i}K_{w,i}}}{\gamma_{3} = {\frac{1}{2}\log \frac{{K_{v,1}^{\gamma_{1}}} + {K_{v,2}^{\gamma_{2}}}}{{K_{v,1}^{- \gamma}} + {K_{v,2}^{- \gamma_{2}}}}}}{l_{3} = {l_{1} + l_{2}}}{K_{w,3} = {1/{f\left( \sqrt{K_{v,1}^{2} + K_{v,1}^{2} + {2\; K_{v,2}K_{v,2}{\cosh \left( {\gamma_{1} - \gamma_{2}} \right)}}} \right)}}}} & (1.26) \end{matrix}$

FIG. 5 shows a block diagram which illustrates the operations that must be carried out in order to obtain the formula (1.26).

The formula (1.26) should preferably be used when the concentration of the characteristic functions of the messages is sufficiently high, i.e. above a threshold that must be optimized for each specific application, and therefore for small message concentration values. Otherwise, the update formula becomes the formula (1.4):

$\begin{matrix} {{{S\;\left\lbrack G_{1} \right\rbrack} + {S\;\left\lbrack G_{2} \right\rbrack}} \approx {S\;\left\lbrack {G\left( {{\mu_{1} + \mu_{2}},\left( {K_{w,1}^{- 1} + K_{w,2}^{- 1}} \right)^{- 1}} \right)} \right\rbrack}} & (1.27) \end{matrix}$

When concentration values are small, the correspondence between the concentrations of V-messages and the concentrations of WG-messages of the formula (1.16) takes a logarithmic trend. The following approximations apply:

$\begin{matrix} {{{{f\; (x)} \approx \frac{1}{2\; \log \; \left( {x/2} \right)}},{x < 1}}{{{f^{- 1}(x)} \approx {2\; ^{- \frac{1}{2\; x}}}},{x < 0.72}}} & (1.28) \end{matrix}$

It is therefore advantageous to introduce the concentration logarithm κ_(v,i)

log K_(v,i)−log (2) for V-messages and to derive the update equations (1.26) by using this quantity.

By introducing the associative operator max*

log Σ exp to simplify the notations, the update equations can be re-written as follows:

$\begin{matrix} {\mspace{79mu} {{\kappa_{v,i} = {{- K_{w,i}}/2}}\mspace{79mu} {\mu_{i} = \left( {l_{i} + \alpha_{i}} \right)}\mspace{79mu} {\gamma_{i} = {\alpha_{i}K_{w,i}}}{K_{w,3} = {- {\max^{*}\left( {{{2\; \kappa_{v,1}} + {2\; \kappa_{v,1}}},{\kappa_{v,1} + \kappa_{v,2} + {\max^{*}\left( {{\gamma_{1} - \gamma_{2}},{\gamma_{2} - \gamma_{1}}} \right)}}} \right)}}}{\gamma_{3} = {\frac{1}{2}\left( {{\max^{*}\left( {{\kappa_{v,1} + \gamma_{1}},{\kappa_{v,2} + \gamma_{2}}} \right)} - {\max^{*}\left( {{\kappa_{v,1} - \gamma_{1}},{\kappa_{v,2} - \gamma_{2}}} \right)}} \right)}}}} & (1.29) \end{matrix}$

This update operation, which is equivalent to the formula (1.26), only requires sums and max* operators, and is therefore particularly useful when implementing the method of the present invention.

FIG. 6 shows a block diagram which illustrates the operations required for obtaining the formula (1.29).

The following will describe a third embodiment of the method according to the invention, wherein variables are made discrete and are wrapped with integer period M.

With reference to FIG. 7, there is shown a factor graph 10″ of an estimator that comprises memory means 12″ adapted to store incoming and outgoing messages at sum nodes 11″ and repetition nodes 13″ of the factor graph 10″.

In this third embodiment, the sampling operators S[•] and the wrapping operators W[•] switch, and it is possible to introduce the class of digital messages (D-messages)

S[W[

]]=W[S[

]]

which can still be parameterized through the mean and the variance of the corresponding Gaussian message.

The relation among WG-messages, SG-messages and D-messages is shown in FIG. 8.

The class of D-messages is not closed either with respect to the sum nodes 11″ or with respect to the repetition nodes 13″. However, it is still possible to apply the approximations introduced with reference to WG-messages and SG-messages:

W[S[G ₁ ]]+W[S[G ₂ ]]=W[S[G ₁ ]+S[G ₂ ]]≈W[S[G ₃]]  (1.30)

S[W[G ₁ ]]·S[W[G ₂ ]]=S[W[G ₁ ]·W[G ₂ ]]≈S[W[G ₃]]  (1.31)

Discrete variables wrapped with integer period M are variables with finite cardinality M which are obtained, for example, in linear encoders over rings, where inputs are discrete variables in [0,M-1] and sums are made with module M

Said class of linear encoders is a generalization of binary codes (M=2).

The method of said third embodiment, which uses D-messages, thus allows for iterative decoding of linear codes over rings. It should be pointed out, however, that the variable scaling operation (product by a scalar) is not possible.

The complexity of the corresponding iterative decoder is therefore independent of M.

An overview of the formulas that can be used in accordance with the method of the present invention for WG, SG and D type messages is shown in FIG. 9.

The decoder implementing the method according to one of the ;three above-described embodiments of the invention comprises an estimator.

FIG. 10 illustrates an example of a digital transmission and reception system which advantageously uses the a posteriori probability estimator of the present invention. In particular, FIG. 10 shows a transmission and reception system that employs linear codes over rings with M-PAM modulations and a receiver comprising an a posteriori probability estimator as shown in the third embodiment of the invention.

An encoder 31 with rate K/N over a ring with cardinality M generates blocks of N integer symbols c_(k) in the interval [0,M-1] starting from blocks of K symbols u_(l) of the same cardinality. The symbols c_(k) are transmitted through an M-PAM modulation on an additive Gaussian channel by means of the correspondence x(c) that defines the M-PAM type modulator 32.

The task of the receiver is to estimate the symbols transmitted at maximum a posteriori probability (MAP). To do so, it is necessary to calculate the a posteriori probability of the latter and decide for the symbol that maximizes it.

Since the model that describes an encoder over rings is a linear model which only involves repetitions and sums modulo M and the input messages to the estimator 34 are sampled and Gaussian messages, it is possible to use the version that processes D-messages of the third embodiment of the present invention through a processing module 33.

The receiver of FIG. 10, based on the a posteriori probability estimator of the present invention, has a complexity and memory requirements which are independent of M, and hence independent of the spectral efficiency η of the system, unlike prior art receivers, wherein the complexity of the estimator is at least linear with M and therefore exponential with the spectral efficiency of the system.

The method and the estimator according to the present invention may also be used with the method according to the first and second embodiments of the present invention.

The features and advantages of the present invention are apparent from the above description.

The method according to the present invention advantageously introduces a new family of methods of propagation of messages for discrete and/or wrapped variables.

The method for updating a factor graph of an a posteriori probability estimator according to the present invention advantageously requires a quantity of memory for message representation which is constant and independent of the cardinality of the variables' alphabets in use.

Another advantage is that the method of the present invention allows acting upon messages wherein variables are limited and/or discrete.

A further advantage is that the method of the present invention allows creating iterative decoders for non-binary codes with high or very high cardinality.

Finally, the method of the present invention can advantageously be used for at least the following applications:

-   -   generation of iterative decoding algorithms for         telecommunications channel codes (LDPC, turbo codes and the         like);     -   MIMO receivers, source coding and receivers for digital         telecommunications;     -   artificial intelligence and neural networks;     -   optimization and modelling;     -   any application using BP algorithms on linear systems also         involving discrete and/or finite support variables and sums         modulo M.

The method for updating a factor graph of an a posteriori probability estimator described herein by way of example may be subject to many possible variations without departing from the novelty spirit of the inventive idea; it is also clear that in the practical implementation of the invention the illustrated details may have different shapes or be replaced with other technically equivalent elements.

It can therefore be easily understood that the present invention is not limited to a method for updating a factor graph of an a posteriori probability estimator, but may be subject to many modifications, improvements or replacements of equivalent parts and elements without departing from the inventive idea, as clearly specified in the following claims. 

1. A method for updating a factor graph of an a posteriori probability estimator, said factor graph comprising at least one repetition node and at least one sum node, wherein at least two connections are associated with each node, and wherein each connection is associated with an incoming message at said node and with an outgoing message from said node, said method being characterized by: a) storing the nodes' incoming and outgoing messages into memory means of said estimator as messages belonging to one same class of wrapped and/or sampled Gaussian messages; b) updating said node of said factor graph by using a resulting message belonging to said class of incoming messages, said resulting message being obtained by processing said incoming wrapped and/or sampled Gaussian messages.
 2. A method according to claim 1, wherein said message class of said nodes' incoming and outgoing messages comprises the wrapped Gaussian messages.
 3. A method according to claim 1, wherein the processing of the resulting message varies depending on the concentration parameter of said incoming wrapped Gaussian messages.
 4. A method according to claim 3, wherein said node referred to in step b) is a repetition node, and wherein said resulting message has a mean of $\frac{{{\overset{\_}{\mu}}_{1}K_{1}} + {{\overset{\_}{\mu}}_{2}K_{2}}}{K_{1} + K_{2}}$ mod M and a concentration of K₁+K₂ , where μ ₁ and K₁ are, respectively, the means and the concentration of a first incoming wrapped Gaussian message at said repetition node, μ ₂ and K₂ are, respectively, the mean and the concentration of a second incoming wrapped Gaussian message at said repetition node, and M is the wrapping period of said incoming wrapped Gaussian messages.
 5. A method according to claim 4, wherein said means μ ₁ and μ ₂ are chosen among all possible values of μ ₁=μ₁+k₁M and μ ₁=μ₂+k₂M so that | μ ₁− μ ₂| is minimum.
 6. A method according to claim 3, wherein said node referred to in step b) is a repetition node, and wherein the following steps are carried out between said step a) and said step b): c) approximating said incoming wrapped Gaussian messages with incoming Von Mises type messages; d) calculating the product of said incoming Von Mises type messages, thereby obtaining a resulting Von Mises message; e) approximating said resulting Von Mises message with a resulting wrapped Gaussian message.
 7. A method according to claim 6, wherein said resulting message has a mean μ₃ of $\frac{1}{A}{\arctan \left( \frac{{K_{v,1}{\sin \left( {A\; \mu_{1}} \right)}} + {K_{v,2}{\sin \left( {A\; \mu_{2}} \right)}}}{{K_{v,1}{\cos \left( {A\; \mu_{1}} \right)}} + {K_{v,2}{\cos \left( {A\; \mu_{2}} \right)}}} \right)}$ and a concentration K_(w,3) of A² ƒ(√{square root over (K_(v,1) ²+K_(v,2) ²+2K_(v,1)K_(v,2) cos(A(μ₁−μ₂)))}), where K_(v, i)f⁻¹(K_(w, i)/A²) i = 1, 2 ${A\frac{2\; \pi}{M}},$ and M is the wrapping period.
 8. A method according to claim 1, wherein said node is a sum node and said resulting message has a mean which is the sum of the means of a first and a second incoming wrapped Gaussian messages, and the concentration is (K₁ ⁻¹+K₂ ⁻¹)⁻¹, where K₁ is the concentration of said first incoming wrapped Gaussian message and K₂ is the concentration of said second incoming wrapped Gaussian message.
 9. A method according to claim 1, wherein said message class of said nodes' incoming and outgoing messages comprises the sampled Gaussian messages.
 10. A method according to claim 9, wherein the processing of the resulting message varies depending on the concentration parameter of said incoming sampled Gaussian messages.
 11. A method according to claim 10, wherein said node referred to in step b) is a sum node, and wherein said resulting message has a mean which is the sum of the means of a first and a second incoming sampled Gaussian messages, and the concentration is (K₁ ⁻¹+K₂ ⁻¹)⁻¹, wherein K₁ is the concentration of said first incoming sampled Gaussian message and K₂ is the concentration of said second incoming sampled Gaussian message.
 12. A method according to claim 10, wherein said node referred to in step b) is a sum node, and wherein the following steps are carried out between said step a) and said step b): c) approximating the characteristic function of said incoming sampled Gaussian messages with Von Mises type messages; d) calculating the product of said Von Mises type messages, the result of said product being an approximation of the characteristic function of said resulting message.
 13. A method according to claim 12, wherein said resulting message has a mean of μ₃ and a concentration of K_(w,3), obtainable from the following formulas: K_(v, i) = f⁻¹(1/K_(w, i)) μ_(i) = (l_(i) + α_(i)) γ_(i) = α_(i)K_(w, i) $\gamma_{3} = {\frac{1}{2}\log \frac{{K_{v,1}^{\gamma_{1}}} + {K_{v,2}^{\gamma_{2}}}}{{K_{v,1}^{- \gamma}} + {K_{v,2}^{- \gamma_{2}}}}}$ l₃ = l₁ + l₂ $K_{w,3} = {1/{f\left( \sqrt{K_{v,1}^{2} + K_{v,1}^{2} + {2\; K_{v,2}K_{v,2}{\cosh \left( {\gamma_{1} - \gamma_{2}} \right)}}} \right)}}$ where μ₁ and K₁ are, respectively, the mean and the concentration of a first incoming sampled Gaussian message at said sum node, and μ₂ and K₂ are, respectively, the mean and the concentration of a second incoming sampled Gaussian message at said sum node.
 14. A method according to claim 12, wherein said resulting message has a mean of μ₃ and a concentration of K_(w,3), obtainable from the following formulas:      κ_(v, i) = −K_(w, i)/2      μ_(i) = (l_(i) + α_(i))      γ_(i) = α_(i)K_(w, i) K_(w, 3) = −max^(*)(2 κ_(v, 1), 2 κ_(v, 1), κ_(v, 1) + κ_(v, 2) + max^(*)(γ₁ − γ₂, γ₂ − γ₁)) $\gamma_{3} = {\frac{1}{2}\left( {{\max^{*}\left( {{\kappa_{v,1} + \gamma_{1}},{\kappa_{v,2} + \gamma_{2}}} \right)} - {\max^{*}\left( {{\kappa_{v,1} - \gamma_{1}},{\kappa_{v,2} - \gamma_{2}}} \right)}} \right)}$ where μ₁ and K₁ are, respectively, the mean and the concentration of a first incoming sampled Gaussian message at said sum node, and μ₂ and K₂ are, respectively, the mean and the concentration of a second incoming sampled Gaussian message at said sum node, and wherein the operator max

log Σ exp has been introduced.
 15. A method according to claim 9, wherein said node is a repetition node and said resulting message has a mean of $\frac{{\mu_{1}K_{1}} + {\mu_{2}K_{2}}}{K_{1} + K_{2}}$ and a concentration of K₁+K₂ , where μ₁ and K₁ are, respectively, the mean and the concentration of a first incoming sampled Gaussian message, and μ₂ and K₂ are, respectively, the mean and the concentration of a second incoming sampled Gaussian message.
 16. A method according to claim 1, wherein said message class of said nodes' incoming and outgoing messages comprises the sampled and wrapped Gaussian messages.
 17. A method according to claim 16, wherein the processing of the resulting message varies depending on the concentration parameter of said incoming sampled and wrapped Gaussian messages.
 18. A method according to claim 17, wherein said node referred to in step b) is a sum node, and wherein said resulting message has a mean which is the module sum M of the means of a first and a second incoming sampled and wrapped Gaussian messages, and the concentration is (K₁ ⁻¹+K₂ ⁻¹)⁻¹, where K₁ is the concentration of said first incoming sampled and wrapped Gaussian message and K₂ is the concentration of said second incoming sampled and wrapped Gaussian message.
 19. A method according to claim 17, wherein the following steps are carried out between said step a) and said step b): c) approximating the characteristic function of said incoming sampled and wrapped Gaussian messages with Von Mises type messages; d) calculating the product of said Von Mises type messages, the result of said product being an approximation of the characteristic function of said resulting message.
 20. A method according to claim 19, wherein said resulting message has a mean of μ₃ and a concentration of K_(w,3), obtainable from the following formulas: K_(v, i) = f⁻¹(1/K_(w, i)) μ_(i) = (l_(i) + α_(i)) γ_(i) = α_(i)K_(w, i) $\gamma_{3} = {\frac{1}{2}\log \frac{{K_{v,1}^{\gamma_{1}}} + {K_{v,2}^{\gamma_{2}}}}{{K_{v,1}^{- \gamma}} + {K_{v,2}^{- \gamma_{2}}}}}$ l₃ = l₁ + l₂ $K_{w,3} = {1/{f\left( \sqrt{K_{v,1}^{2} + K_{v,1}^{2} + {2\; K_{v,2}K_{v,2}{\cosh \left( {\gamma_{1} - \gamma_{2}} \right)}}} \right)}}$ where μ₁ and K₁ are, respectively, the mean and the concentration of a first incoming sampled and wrapped Gaussian message at said sum node, and μ₂ and K₂ are, respectively, the mean and the concentration of a second incoming sampled and wrapped Gaussian message at said sum node.
 21. A method according to claim 19, wherein said resulting message has a mean of μ₃ and a concentration of K_(w,3), obtainable from the following formulas:      κ_(w, i) = −K_(w, i)/2      μ_(i) = (l_(i) + α_(i))      γ_(i) = α_(i)K_(w, i) K_(w, 3) = −max^(*)(2 κ_(v, 1), 2 κ_(v, 1), κ_(v, 1) + κ_(v, 2) + max^(*)(γ₁ − γ₂, γ₂ − γ₁)) $\gamma_{3} = {\frac{1}{2}\left( {{\max^{*}\left( {{\kappa_{v,1} + \gamma_{1}},{\kappa_{v,2} + \gamma_{2}}} \right)} - {\max^{*}\left( {{\kappa_{v,1} - \gamma_{1}},{\kappa_{v,2} - \gamma_{2}}} \right)}} \right)}$ where μ₁ and K₁ are, respectively, the mean and the concentration of a first incoming sampled and wrapped Gaussian message at said sum node, and μ₂ and K₂ are, respectively, the mean and the concentration of a second incoming sampled and wrapped Gaussian message at said sum node, and wherein the operator max*

log Σ exp has been introduced.
 22. A method according to claim 16, wherein said node referred to in step b) is a repetition node, and wherein said resulting message has a mean of $\frac{{{\overset{\_}{\mu}}_{1}K_{1}} + {{\overset{\_}{\mu}}_{2}K_{2}}}{K_{1} + K_{2}}$ mod M and a concentration of K₁+K₂ , where μ ₁ and K₁ are, respectively, the mean and the concentration of a first incoming sampled and wrapped Gaussian message at said repetition node, μ ₂ and K₂ are, respectively, the mean and the concentration of a second incoming sampled and wrapped Gaussian message at said repetition node, and M is the wrapping period of said incoming wrapped Gaussian messages.
 23. A method according to claim 22, wherein said means μ ₁ and μ ₂ are chosen among all possible values of μ ₁=μ₁+k₁M and μ ₁=μ₂+k₂M so that | μ ₁− μ ₂| is minimum.
 24. A method according to claim 17, wherein said node referred to in step b) is a repetition node, and wherein the following steps are carried out between said step a) and said step b): c) approximating said incoming sampled and wrapped Gaussian messages with incoming Von Mises type messages; d) calculating the product of said incoming Von Mises type messages, thereby obtaining a resulting Von Mises message; e) approximating said resulting Von Mises message with a resulting sampled and wrapped Gaussian message.
 25. A method according to claim 24, wherein said resulting message has a mean μ₃ of $\frac{1}{A}{\arctan \left( \frac{{K_{v,1}{\sin \left( {A\; \mu_{1}} \right)}} + {K_{v,2}{\sin \left( {A\; \mu_{2}} \right)}}}{{K_{v,1}{\cos \left( {A\; \mu_{1}} \right)}} + {K_{v,2}{\cos \left( {A\; \mu_{2}} \right)}}} \right)}$ and a concentration K_(w,3) of A² ƒ(√{square root over (K_(v,1) ²+K_(v,2) ²+2K_(v,1)K_(v,2) cos(A(μ₁−μ₂)))}), where K_(v, i)f⁻¹(K_(w, i)/A²) ${i = 1},2,{A\frac{2\; \pi}{M}}$ and M is the wrapping period.
 26. An a posteriori probability estimator comprising means for implementing the updating method according to claim
 1. 27. A decoder comprising an estimator according to claim
 26. 28. A receiver comprising a decoder according to claim
 27. 